﻿'''
题目描述
商人经营一家店铺，有number种商品，由于仓库限制每件商品的最大持有数量是item[index]，每种商品的价格是
item-price[item_index][day]
通过对商品的买进和卖出获取利润，请给出商人在days天内能获取的最大的利润
注：同一件商品可以反复买进和卖出
输入描述
第一行输入商品的数量number，比如3
第二行输入商品售货天数 days，比如3
第三行输入仓库限制每件商品的最大持有数量是item[index]，比如4 5 6
后面继续输入number行days列，含义如下：
第一件商品每天的价格，比如1 2 3
第二件商品每天的价格，比如4 3 2
第三件商品每天的价格，比如1 5 3
输出描述
输出商人在这段时间内的最大利润。
示例1
输入
3
3
4 5 6
1 2 3
4 3 2
1 5 2
输出
32
说明
示例2
输入
1
1
1
1
输出
0
说明
解题思路
我们只要找到商品价格走势的上升区段，然后低价买入，高价卖出即可求得最大利润。
和lettcode上的这题差不多！
122. 买卖股票的最佳时机 II - 力扣（LeetCode）
使用贪心算法来计算每天售卖商品能够获得的最大利润。
'''
#输入描述：
#第一行输入商品的数量number，比如3
#第二行输入商品售货天数 days，比如3
#第三行输入仓库限制每件商品的最大持有数量是item[index]，比如4 5 6
#后面继续输入number行days列，含义如下：
#第一件商品每天的价格，比如1 2 3
#第二件商品每天的价格，比如4 3 2
#第三件商品每天的价格，比如1 5 3
#输出描述：
#输出商人在这段时间内的最大利润。
'''
示例：
输入：
3
3
4 5 6
1 2 3
4 3 2
1 5 2
输出：
32
'''
#读取输入
item_nums = int(input())
days = int(input())
max_nums_list = list(map(int,input().split()))
item_price = []
for _ in range(item_nums):
    item_price.append(list(map(int,input().split())))
#遍历每天的价格列表，获取可能的最大利润
max_profit = []
for i in range(item_nums):
    current_profit = 0
    for j in range(1,len(item_price[i])):
        if item_price[i][j] > item_price[i][j - 1]:
            #只需累加当天和前一天的差值，如果为正则计入
            profit = item_price[i][j] - item_price[i][j - 1]
            current_profit += profit
    if current_profit > 0:
        max_profit.append(current_profit * max_nums_list[i])
#求和并输出
print(sum(max_profit))

